package negocio;

import conexion.Conexion;
import conexion.Sql;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;


public class Comprobante {
    
    int cons_comprobante = ultimoingreso();
    String fecha;
    String forma_pago;
    String valor_total;
    String cod_proveedor;
    String codigo;
   
    public boolean insertarEgresos;
    
    public Comprobante() {
    }

    public Comprobante(int cons_comprobante, String fecha, String forma_pago, String valor_total, String cod_proveedor,String codigo) {
        
        this.cons_comprobante = cons_comprobante;        
        this.fecha = fecha;
        this.forma_pago = forma_pago;
        this.valor_total = valor_total;
        this.cod_proveedor = cod_proveedor;
        this.codigo = codigo;
        
    }
    
    public Comprobante(String cod_proveedor,String fecha,String forma_pago,String banco) {//BD SQL
        //this.cons_comprobante;
        this.fecha = fecha;
        this.forma_pago = forma_pago;
        this.cod_proveedor = cod_proveedor;
        this.codigo = banco;
        
    }

     public int getCons() {
        return cons_comprobante;
    }
    
    
     public String getFecha() {
        return fecha;
    }

    public String getForm() {
        return forma_pago;
    }
      public String getValor() {
        return valor_total;
    }
    public String getCodpro() {
        return cod_proveedor;
    }
    public String getCodigo() {
        return codigo;
    }
       
        public boolean insertarComprobante() throws SQLException{
        boolean ok=false;
        Conexion conex = new Conexion();
        String sql = "insert into comprobante(cons_comprobante, fecha, forma_pago, valor_total, cod_proveedor,codigo) values ('"+cons_comprobante+"','" +fecha+"','" +forma_pago+"','" +valor_total+"','" +cod_proveedor+"','" +codigo+"')";
        PreparedStatement st = conex.getConnection().prepareStatement(sql);
        //st.setDate(3, new java.sql.Date(new java.util.Date().getTime()));  
         if (Sql.ejecuta(sql)==null)
           {
            ok=true;
           }
          else
           {
            System.out.println("NO INSERTO " + Sql.ejecuta(sql));
           }

       return ok;
    }

    public ArrayList listaComprobante()
     {
        ArrayList lista = new ArrayList();
        Conexion conex = new Conexion();
        String sql = "select * from comprobante";
        try
        {
          conex.conectar();
          PreparedStatement st = conex.getConnection().prepareStatement(sql);
          ResultSet rs = st.executeQuery();
          //Recorre el objeto y adiciona los registros a la matriz
          while (rs.next())
          {
              lista.add(new Comprobante(rs.getInt(1), rs.getString(2),rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6)));
          }
          conex.desconectar();
          }
        
        catch(ClassNotFoundException ex)
          {
            System.out.println(ex);
          }
        
        catch(SQLException ex)
          {
            System.out.println(ex);
          }
        
        return lista;
     }
    
    public ArrayList buscarComprobante(String cons_comprobante) throws ClassNotFoundException
    {
        ArrayList lista = new ArrayList();
        boolean ok=false;
        Conexion conex = new Conexion();
        String sql = "Select * from comprobante where cons_comprobante=?";
        
        try
          {
            conex.conectar();
            PreparedStatement ps = conex.getConnection().prepareStatement(sql);
            ps.setString(1, cons_comprobante);
            ResultSet rs = ps.executeQuery();
           
            while (rs.next())
            {
                lista.add(new Comprobante(rs.getInt(1), rs.getString(2),rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6)));
            }
            
             conex.desconectar();
          }
         catch(ClassNotFoundException ex)
          {
            System.out.println(ex);
          } 
         catch(SQLException ex)
        {
            System.out.println(ex);
        }
        return lista;
    }
    
  
  
     public int ultimoingreso(){
       int ultrec=0;
       String sql="SELECT * from comprobante";
       Conexion conex = new Conexion();
      try{
            conex.conectar();
            PreparedStatement st = conex.getConnection().prepareStatement(sql);
            ResultSet rs = st.executeQuery();
            rs.last();
            ultrec = rs.getInt(1);
      }catch(ClassNotFoundException ex){
            System.out.println(ex);}
        catch(SQLException ex){
            System.out.println(ex);
            
        }        
       return ultrec;
   }
       
}
